/*
 * Copyright (c) 2025 Industrial Software Feature Database
 */
package com.comac.ins.bomt.service;

import com.comac.ins.bomt.domain.vo.DetailOriginalV2BomVo;
import com.comac.ins.bomt.domain.vo.DetailStandardV2BomVo;
import com.comac.ins.bomt.domain.vo.DetailStrengthV2BomVo;
import com.comac.ins.common.core.domain.model.LoginUser;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * BomManageServiceV2
 *
 * @author zhanghongyi
 * @date 2025-01-03
 * @description BomManageServiceV2
 */
public interface BomManageServiceV2 {
    /**
     * 上传原始装机清单
     *
     * @param loginUser     the login user
     * @param file          the file
     * @param aircraftModel the aircraft model
     * @param desc 描述
     * @param track          批次号
     * @param groupTag       分组标签
     */
    Long beginUploadOriginalBom(LoginUser loginUser, MultipartFile file, String aircraftModel, String desc, String track, String groupTag);

    /**
     * 上传初始化记录
     *
     * @param loginUser     the login user
     * @param file          the file
     * @param aircraftModel the aircraft model
     * @param desc 描述
     * @param track          批次号
     */
    Long beginUploadInit(LoginUser loginUser, MultipartFile file, String aircraftModel, String desc, String track);


    /**
     * 删除原始装机清单明细
     *
     * @param loginUser     the login user
     * @param ids          id列表
     */
    void deleteOriginalBomDetails(LoginUser loginUser, List<Long> ids);
    /**
     * 删除原始装机清单信息
     *
     * @param loginUser     the login user
     * @param ids          id列表
     */
    void deleteOriginalBomInfos(LoginUser loginUser, List<Long> ids);

    /**
     * 修改原始装机清单
     *
     * @param loginUser     the login user
     * @param modifyDetail  the modify detail
     */
    void modifyOriginalBom(LoginUser loginUser, DetailOriginalV2BomVo modifyDetail);

    /**
     * 复制标准装机清单
     *
     * @param loginUser        登录用户
     * @param srcStandardBomId 来源标准装机清单ID
     * @param deleteDetailIds  删除详细明显ID
     * @param desc             原因描述
     */
    void copyStandardBom(LoginUser loginUser, Long srcStandardBomId, List<Long> deleteDetailIds, List<DetailStandardV2BomVo> modifyDetails, String desc);
    /**
     * 修改强度数模清单
     *
     * @param loginUser        登录用户
     * @param srcStrengthBomId 来源强度数模清单ID
     * @param deleteDetailIds  删除详细明显ID
     * @param desc             原因描述
     */
    void modifyStrengthBom(LoginUser loginUser, Long srcStrengthBomId, List<Long> deleteDetailIds, List<DetailStrengthV2BomVo> modifyDetails, String desc);
}
